home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / ADV350.ZIP / a5toa1.old < prev    next >
Text File  |  1990-11-12  |  1KB  |  44 lines

  1.       SUBROUTINE A5TOA1(A,B,C,CHARS,LENG)
  2.       
  3. C
  4. C  IN ORDER TO WORK ON A PDP-11, THIS HAS BEEN CHANGED TO BE
  5. C  AN A4 TO A1 CONVERSION ROUTINE.
  6. C  A AND B CONTAIN A 1- TO 8-CHARACTER WORD IN A4 FORMAT, C CONTAINS ANOTHER
  7. C  WORD AND/OR PUNCTUATION.  THEY ARE UNPACKED TO ONE CHARACTER PER WORD IN THE
  8. C  ARRAY "CHARS", WITH EXACTLY ONE BLANK BETWEEN B AND C (OR NONE, IF C'S 100
  9. C  BIT IS OFF).
  10. C  THE INDEX OF THE LAST NON-BLANK CHAR IN CHARS IS RETURNED IN LENG.
  11.  
  12.       IMPLICIT INTEGER*4 (A-Z)
  13. C     INTEGER*2 ASCVAR
  14.       CHARACTER*1 CHARS, BLANK
  15.       DIMENSION CHARS(20),WORDS(3)
  16.       DATA BLANK/' '/
  17.       NOPUN=0
  18. C
  19. C  NOPUN =  0 MEANS THAT WE DO NOT HAVE A PUNCTUATION CHARACTER.
  20. C  NOPUN = -1 MEANS THAT WE DO HAVE A PUNCTUATION CHARACTER.
  21. C
  22.       MASK=8#100
  23.       IF((C.AND.MASK).NE.MASK) NOPUN=-1
  24.       
  25.       WORDS(1)=A
  26.       WORDS(2)=B
  27.       WORDS(3)=C
  28.       POSN=1
  29.       DO 3 I=1,20
  30.     3 CHARS(I)=BLANK
  31.       DO 1 WORD=1,3
  32.       MASK=8#377
  33.       IF(WORD.EQ.2.AND.POSN.NE.5) GOTO 1
  34.       IF(WORD.EQ.3.AND.NOPUN.EQ.0) POSN=POSN+1
  35.       DO 2 CH=1,4
  36.       CHARS(POSN)=(WORDS(WORD).AND.MASK)
  37.       IF(CHARS(POSN).EQ.BLANK) GOTO 1
  38.       LENG=POSN
  39.       WORDS(WORD)=ISHFT(WORDS(WORD),-8)
  40.     2 POSN=POSN+1
  41.     1 CONTINUE
  42.       RETURN
  43.       END
  44.